import axios from "axios";
import router from "@/router";
import { Message } from "element-ui";

// 创建axios实例
const request = axios.create({
  baseURL: window.server.WEB_SERVER, // 用于配置请求接口公用部分，请求时会自动拼接在你定义的url前面。
  withCredentials: false, // 跨域请求时是否需要访问凭证
  timeout: 3000, // 请求超时时间
});

// 添加请求拦截器
request.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    //如添加token、cookie，修改数据传输格式等。
    const token = window.localStorage.getItem("token");
    token ? (config.headers.Authorization = `Bearer ${token}`) : null;
    return config;
  },
  (error) => {
    // 对请求错误做点什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
request.interceptors.response.use(
  (response) => {
    // 对响应数据做点什么
    return response;
  },
  (error) => {
    // 对响应错误做点什么
    if (error.response && error.response.status === 401) {
      Message.error("登录过期，请重新登录！");
      window.localStorage.clear();
      window.location.reload();
    }

    return Promise.reject(error);
  }
);

export default request;
